from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能

# class 主动技能(主动技能):
# def 等效CD(self, 武器类型):
#     if 武器类型 == '法杖':
#         return round(self.CD / self.恢复 * 1.1, 1)
#     if 武器类型 == '魔杖':
#         return round(self.CD / self.恢复 * 1, 1)

# 脱手 = 1

# def 实际技能次数(self, 输出时间, 武器类型, 输出类型):

# 技能CD = self.等效CD(武器类型, 输出类型)
# 能够打满的技能次数计算
# 技能次数 = int((输出时间 - self.演出时间) /
#           self.等效CD(武器类型, 输出类型) + 1 + self.基础施放次数)
# 剩余时间 = 输出时间 - (技能次数 - 1 - self.基础施放次数) * \
#    self.等效CD(武器类型, 输出类型) - 技能CD - (技能次数-1)*0.5
# 最后一次技能小数点技能次数计算
# if 剩余时间 > 0 and 剩余时间 < self.演出时间:
#    技能次数 += self.最后一次伤害估算(剩余时间)
# return round(技能次数, 2)

# def 最后一次伤害估算(self, 剩余时间):
# return 0


class 技能0(主动技能):
    名称 = "烈焰冲击"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [40, 462]
    无色消耗 = 0
    data0 = [0, 3263, 3596, 3927, 4258, 4590, 4922, 5251, 5583, 5914, 6244, 6577, 6909, 7239, 7571, 7901, 8233, 8564, 8895, 9227, 9557, 9887, 10220, 10553, 10882, 11214, 11546, 11876, 12208, 12539, 12868, 13201, 13532, 13865, 14195, 14526, 14859,
             15190, 15519, 15851, 16182, 16513, 16845, 17177, 17509, 17840, 18170, 18502, 18832, 19163, 19496, 19826, 20156, 20488, 20820, 21150, 21483, 21814, 22145, 22476, 22806, 23140, 23469, 23800, 24133, 24464, 24795, 25127, 25457, 25787, 26120]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能1(被动技能):
    名称 = '属性精通'
    所在等级 = 30
    等级上限 = 15
    基础等级 = 5
    圣灵符文倍率 = 1.0

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + (0.30 + 0.02 * self.等级) * self.圣灵符文倍率, 5)

    def 等级加成(self, x, char: Character = {}):
        if self.等级 != 0:
            if self.等级 + x > self.等级上限:
                self.等级 = self.等级上限
                if self.基础等级 != self.等级上限 and self.关联技能 != ['无']:
                    self.等级溢出 = 1
            else:
                self.等级 += x
                char.所有属性抗性加成(x)


class 技能2(主动技能):
    名称 = "虚无之球"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [60, 616]
    无色消耗 = 0
    data0 = [0, 525, 577, 634, 686, 737, 790, 844, 896, 949, 1003, 1058, 1109, 1164, 1216, 1270, 1323, 1377, 1431, 1481, 1538, 1589, 1644, 1694, 1750, 1802, 1856, 1909, 1965, 2014, 2069, 2122, 2176, 2226, 2282, 2333,
             2387, 2438, 2495, 2548, 2600, 2655, 2709, 2760, 2811, 2867, 2918, 2975, 3026, 3081, 3132, 3187, 3238, 3293, 3344, 3401, 3453, 3505, 3560, 3612, 3666, 3717, 3774, 3825, 3877, 3933, 3985, 4038, 4090, 4145, 4199]
    hit0 = 8
    TP成长 = 0.1
    TP上限 = 7


class 技能3(主动技能):
    名称 = "冰墙"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [60, 616]
    无色消耗 = 0
    data0 = [0, 8090, 8909, 9727, 10546, 11373, 12188, 13007, 13826, 14651, 15471, 16289, 17109, 17927, 18751, 19571, 20388, 21208, 22034, 22852, 23671, 24490, 25313, 26131, 26951, 27769, 28597, 29414, 30234, 31052, 31877, 32697, 33513, 34332, 35160,
             35974, 36793, 37612, 38439, 39257, 40077, 40895, 41719, 42539, 43357, 44176, 45002, 45822, 46639, 47458, 48281, 49100, 49919, 50738, 51564, 52382, 53202, 54020, 54844, 55664, 56482, 57301, 58123, 58942, 59762, 60580, 61404, 62225, 63044, 63868, 64684]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能4(主动技能):
    名称 = "雷旋"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [40, 462]
    无色消耗 = 0
    data0 = [0, 5777, 6363, 6949, 7535, 8121, 8707, 9293, 9879, 10465, 11051, 11637, 12223, 12809, 13395, 13982, 14568, 15154, 15740, 16326, 16912, 17498, 18084, 18670, 19256, 19842, 20428, 21014, 21600, 22187, 22773, 23359, 23945, 24531, 25117, 25703,
             26289, 26875, 27461, 28047, 28633, 29219, 29805, 30392, 30978, 31564, 32150, 32736, 33322, 33908, 34494, 35080, 35666, 36252, 36838, 37424, 38011, 38597, 39183, 39769, 40355, 40941, 41527, 42113, 42699, 43285, 43871, 44457, 45043, 45629, 46216]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能5(主动技能):
    名称 = "天雷冲击"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [125, 436]
    无色消耗 = 1
    data0 = [0, 3760, 4141, 4522, 4904, 5286, 5666, 6049, 6430, 6813, 7194, 7575, 7957, 8337, 8720, 9100, 9482, 9863, 10245, 10627, 11008, 11388, 11771, 12152, 12534, 12915, 13295, 13680, 14059, 14443, 14823, 15204, 15586, 15967, 16348, 16731,
             17112, 17494, 17875, 18256, 18638, 19018, 19401, 19781, 20164, 20545, 20926, 21308, 21689, 22070, 22452, 22833, 23216, 23598, 23979, 24361, 24741, 25124, 25504, 25886, 26268, 26649, 27030, 27412, 27793, 28174, 28556, 28937, 29319, 29701, 30082]
    hit0 = 3
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1
    天雷攻击力增加率 = 1.55

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv)*self.天雷攻击力增加率

    def 装备护石(self, char):
        self.hit0 = 1
        self.天雷攻击力增加率 = 6.35


class 技能6(主动技能):
    名称 = "极冰盛宴"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 19
    MP = [380, 3192]
    无色消耗 = 2
    data0 = [0, 1820, 2004, 2188, 2372, 2558, 2741, 2926, 3110, 3296, 3479, 3664, 3849, 4032, 4219, 4402, 4586, 4771, 4956, 5140, 5325, 5508, 5694, 5879, 6063, 6247, 6434, 6618, 6800, 6987, 7169, 7356, 7540, 7724, 7909, 8094, 8279,
             8462, 8647, 8832, 9016, 9201, 9385, 9571, 9754, 9939, 10123, 10308, 10493, 10677, 10860, 11046, 11230, 11415, 11599, 11783, 11970, 12154, 12339, 12521, 12709, 12892, 13076, 13261, 13445, 13630, 13815, 13998, 14183, 14369, 14553]
    hit0 = 8
    TP成长 = 0.1
    TP上限 = 5


class 技能7(主动技能):
    名称 = "湮灭黑洞"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 35
    MP = [300, 2520]
    无色消耗 = 2
    data0 = [0, 1268, 1398, 1525, 1654, 1782, 1913, 2040, 2169, 2298, 2428, 2554, 2684, 2812, 2943, 3070, 3199, 3326, 3456, 3584, 3714, 3841, 3972, 4100, 4228, 4356, 4485, 4615, 4744, 4871, 5001, 5129, 5257, 5386, 5515,
             5642, 5773, 5901, 6031, 6157, 6287, 6416, 6544, 6673, 6803, 6930, 7059, 7187, 7318, 7445, 7574, 7703, 7833, 7959, 8089, 8217, 8348, 8475, 8604, 8731, 8861, 8989, 9119, 9246, 9377, 9505, 9633, 9761, 9891, 10020, 10149]
    hit0 = 15
    data1 = [0, 6350, 6995, 7636, 8280, 8926, 9569, 10213, 10859, 11503, 12147, 12790, 13435, 14079, 14723, 15368, 16012, 16656, 17302, 17944, 18588, 19234, 19878, 20520, 21166, 21810, 22453, 23097, 23742, 24385, 25030, 25675, 26320, 26963, 27608, 28251,
             28895, 29540, 30185, 30828, 31474, 32118, 32761, 33403, 34050, 34692, 35336, 35982, 36626, 37270, 37915, 38558, 39202, 39846, 40492, 41135, 41779, 42425, 43069, 43711, 44357, 45001, 45644, 46290, 46934, 47577, 48223, 48865, 49508, 50153, 50798]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1
    形态 = ['打满', '秒炸']

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "秒炸":
            self.hit0 = 2
        if 形态 == "打满":
            self.hit0 = 15

    def 装备护石(self, char):
        self.data2 = self.data0
        self.hit2 = 10
        self.power2 = 0.34 + 0.4


class 技能8(主动技能):
    名称 = "杰克降临"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [160, 1344]
    无色消耗 = 2
    data0 = [0, 5572, 6138, 6704, 7271, 7833, 8399, 8966, 9530, 10098, 10661, 11226, 11793, 12358, 12925, 13489, 14053, 14621, 15184, 15752, 16317, 16884, 17446, 18011, 18579, 19144, 19710, 20277, 20838, 21406, 21971, 22538, 23102, 23666, 24232, 24797,
             25365, 25929, 26495, 27062, 27625, 28192, 28756, 29322, 29889, 30452, 31020, 31583, 32151, 32715, 33281, 33845, 34411, 34977, 35543, 36107, 36674, 37238, 37805, 38369, 38935, 39501, 40065, 40632, 41196, 41760, 42327, 42894, 43462, 44024, 44588]
    hit0 = 1
    data1 = [0, 22295, 24557, 26818, 29079, 31342, 33603, 35865, 38128, 40390, 42651, 44914, 47174, 49436, 51700, 53961, 56220, 58484, 60746, 63007, 65269, 67533, 69792, 72056, 74317, 76579, 78841, 81103, 83365, 85628, 87886, 90150, 92411, 94673, 96937, 99197, 101458, 103723,
             105983, 108245, 110509, 112769, 115030, 117291, 119555, 121817, 124076, 126341, 128603, 130862, 133126, 135387, 137648, 139912, 142172, 144434, 146698, 148959, 151221, 153481, 155744, 158007, 160266, 162531, 164793, 167052, 169315, 171577, 173838, 176102, 178361]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 0.1 * 4
        self.power1 = 1.54


class 技能9(主动技能):
    名称 = "元素之幕"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [400, 1000]
    无色消耗 = 2
    data0 = [0, 1043, 1150, 1255, 1361, 1467, 1573, 1680, 1785, 1891, 1997, 2103, 2208, 2315, 2420, 2526, 2633, 2738, 2844, 2950, 3056, 3161, 3268, 3373, 3480,
             3586, 3691, 3798, 3903, 4009, 4116, 4221, 4327, 4433, 4539, 4644, 4751, 4856, 4962, 5069, 5174, 5281, 5386, 5492, 5598, 5704, 5809, 5916, 6022, 6127, 6234]
    hit0 = 20
    data1 = [0, 5220, 5750, 6279, 6808, 7338, 7868, 8398, 8926, 9456, 9986, 10516, 11045, 11575, 12104, 12634, 13163, 13693, 14223, 14753, 15281, 15811, 16341, 16871, 17401, 17929,
             18459, 18989, 19519, 20048, 20578, 21107, 21637, 22166, 22696, 23226, 23756, 24284, 24814, 25344, 25874, 26404, 26932, 27462, 27992, 28522, 29051, 29581, 30110, 30640, 31169]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1
    演出时间 = 3.0

    def 装备护石(self, char):
        self.CDR *= 0.95
        self.power0 = 1 + 0.22
        self.power1 = 1+0.94


class 技能10(被动技能):
    名称 = '魔力增幅'
    所在等级 = 48
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3
    倍率 = 1.0

    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.075 + 0.015 * self.等级, 5)


class 技能11(主动技能):
    名称 = "陨星幻灭"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1200, 10080]
    无色消耗 = 5
    data0 = [0, 224, 276, 328, 380, 432, 484, 537, 589, 760, 809, 859, 908, 960, 1011, 1060, 1111, 1161, 1212, 1262, 1312, 1362, 1411, 1462, 1514, 1564,
             1613, 1664, 1714, 1766, 1814, 1864, 1915, 1965, 2016, 2064, 2116, 2167, 2216, 2266, 2316, 2368, 2418, 2467, 2518, 2569, 2618, 2670, 2719, 2769, 2819]
    hit0 = 40
    data1 = [0, 898, 1105, 1312, 1520, 1729, 1936, 2144, 2354, 3043, 3238, 3437, 3638, 3839, 4042, 4242, 4442, 4647, 4847, 5045, 5249, 5449, 5650, 5852, 6052, 6252,
             6453, 6653, 6857, 7058, 7257, 7458, 7659, 7861, 8062, 8263, 8463, 8662, 8865, 9065, 9267, 9469, 9671, 9870, 10070, 10273, 10474, 10674, 10877, 11079, 11278]
    hit1 = 40
    data2 = [0, 1795, 2209, 2625, 3040, 3455, 3871, 4287, 4708, 6086, 6475, 6874, 7276, 7676, 8082, 8484, 8884, 9291, 9692, 10090, 10496, 10898, 11300, 11701, 12105, 12505, 12904,
             13308, 13712, 14117, 14515, 14913, 15315, 15720, 16126, 16525, 16924, 17326, 17731, 18130, 18533, 18939, 19341, 19741, 20140, 20547, 20946, 21347, 21753, 22154, 22557]
    hit2 = 5
    data3 = [0, 7180, 8839, 10500, 12158, 13826, 15483, 17153, 18833, 24343, 25900, 27496, 29102, 30708, 32330, 33941, 35535, 37169, 38768, 40356, 41988, 43590, 45199, 46809, 48423,
             50022, 51623, 53232, 54849, 56467, 58061, 59657, 61266, 62881, 64504, 66101, 67695, 69303, 70920, 72518, 74131, 75757, 77359, 78961, 80563, 82187, 83790, 85391, 87014, 88618, 90227]
    hit3 = 5


class 技能12(主动技能):
    名称 = "元素震荡"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [860, 1500]
    无色消耗 = 3
    data0 = [0, 6495, 7156, 7813, 8474, 9134, 9793, 10450, 11112, 11771, 12429, 13087, 13748, 14406, 15068, 15726, 16384, 17042, 17706, 18362, 19024, 19680, 20342, 20998, 21660, 22318,
             22976, 23637, 24297, 24954, 25615, 26273, 26933, 27592, 28252, 28909, 29571, 30228, 30886, 31547, 32204, 32865, 33522, 34184, 34840, 35503, 36162, 36820, 37478, 38139, 38797]
    hit0 = 3
    data1 = [0, 29239, 32204, 35171, 38139, 41106, 44071, 47038, 50007, 52970, 55936, 58904, 61868, 64836, 67803, 70769, 73735, 76703, 79670, 82633, 85602, 88568, 91534, 94500, 97468, 100433, 103401,
             106367, 109335, 112300, 115265, 118234, 121198, 124166, 127132, 130098, 133065, 136033, 138997, 141963, 144932, 147898, 150864, 153830, 156799, 159762, 162728, 165697, 168661, 171629, 174596]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 += 0.14 * 17


class 技能13(主动技能):
    名称 = "圣灵水晶"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [0, 71660, 78929, 86199, 93469, 100740, 108009, 115276, 122547, 129816, 137089, 144358, 151628, 158897, 166169, 173436, 180705, 187975, 195244, 202516, 209786, 217057, 224326, 231596, 238863, 246136,
             253404, 260673, 267943, 275216, 282485, 289756, 297023, 304293, 311564, 318834, 326103, 333372, 340645, 347914, 355182, 362452, 369721, 376991, 384262, 391532, 398802, 406072, 413343, 420610, 427881]
    hit0 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.25


class 技能14(被动技能):
    名称 = '元素奥义'
    所在等级 = 75
    学习间隔 = 3
    等级上限 = 50
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能15(主动技能):
    名称 = "元素之门"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [0, 7508, 8273, 9034, 9796, 10557, 11324, 12076, 12840, 13601, 14365, 15133, 15886, 16654, 17415, 18178, 18940, 19701, 20461, 21224, 21978, 22744, 23507, 24267, 25033, 25795,
             26560, 27316, 28081, 28843, 29607, 30372, 31123, 31890, 32650, 33415, 34177, 34941, 35698, 36462, 37222, 37988, 38754, 39515, 40270, 41030, 41798, 42551, 43319, 44081, 44844]
    hit0 = 10

    是否有护石 = 1
    # 根据外门数量的攻击力最大增幅率110%
    倍率 = 1.1

    def 装备护石(self, char):
        self.hit0 = 1
        self.power0 = 13.25


class 技能17(主动技能):
    名称 = "第六元素"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 8000]
    无色消耗 = 10
    data0 = [0, 3476, 4283, 5088, 5894, 6696, 7507, 8309, 9115, 9921, 10728, 11532, 12340, 13144, 13950, 14752, 15564, 16364, 17174, 17978, 18784, 19597, 20400, 21206, 22007, 22820,
             23622, 24429, 25234, 26040, 26843, 27653, 28456, 29262, 30064, 30874, 31676, 32481, 33289, 34094, 34900, 35711, 36513, 37320, 38125, 38931, 39737, 40546, 41349, 42156, 42958]
    hit0 = 20
    data1 = [0, 162170, 199772, 237382, 274982, 312590, 350196, 387798, 425405, 463012, 500613, 538221, 575826, 613433, 651040, 688644, 726248, 763856, 801460, 839067, 876670, 914272, 951882, 989483, 1027093, 1064699, 1102301,
             1139910, 1177518, 1215118, 1252724, 1290330, 1327935, 1365546, 1403142, 1440749, 1478357, 1515961, 1553569, 1591173, 1628777, 1666384, 1703989, 1741596, 1779202, 1816807, 1854414, 1892012, 1929620, 1967228, 2004830]
    hit1 = 1


class 技能16(主动技能):
    名称 = '圣灵符文'
    所在等级 = 75
    学习间隔 = 3
    等级上限 = 11
    等级精通 = 1
    是否有伤害 = 0
    是否主动 = 1
    data0 = [int(i*1.0) for i in [0, 131, 144, 156, 169, 181, 194, 206, 219, 231,
                                  244, 256, 269, 281, 294, 306, 319, 331, 344, 356, 369]]
    data1 = [int(i*1.0) for i in [0, 160, 174, 188, 201, 216, 229, 244, 257, 272,
                                  285, 299, 313, 327, 341, 355, 369, 383, 397, 411, 424]]


class 技能18(主动技能):
    名称 = '魔法秀'
    所在等级 = 20
    等级上限 = 15
    基础等级 = 10
    魔法秀数值 = [0, 22, 43, 65, 86, 108, 130, 151, 173, 194, 216,
             238, 259, 281, 302, 324, 346, 367, 389, 410, 432]
    是否有伤害 = 0
    冷却关联技能 = ['冰墙', '元素之门', '元素之幕', '元素震荡', '圣灵水晶', '烈焰冲击',
              '天雷冲击', '雷旋', '杰克降临', '湮灭黑洞', '极冰盛宴', '虚无之球', '光与暗的交响']
    冷却类型 = 1

    圣灵符文倍率 = 1.0

    def CD缩减倍率(self, 武器类型):
        return round(1 - 0.001 * self.魔法秀数值[self.等级] * self.圣灵符文倍率, 3)


class 技能19(被动技能):
    名称 = '元素之源'
    所在等级 = 95
    学习间隔 = 3
    等级上限 = 50
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能20(主动技能):
    名称 = "光与暗的交响"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [833, 2666]
    无色消耗 = 7
    data0 = [0, 10816, 11914, 13012, 14110, 15206, 16304, 17402, 18498, 19595, 20694, 21791, 22887, 23986, 25084, 26181, 27276, 28376, 29473, 30569, 31668, 32765, 33862, 34959, 36057,
             37154, 38250, 39348, 40446, 41543, 42641, 43739, 44836, 45934, 47030, 48128, 49226, 50323, 51419, 52517, 53615, 54711, 55809, 56908, 58005, 59101, 60200, 61297, 62394, 63491, 64589]
    hit0 = 15


class 技能21(主动技能):
    名称 = "宇宙寂灭：冰火之歌"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4027, 12888]
    无色消耗 = 15
    data0 = [0, 370662, 456610, 542564, 628515, 714464, 800416, 886368, 972319, 1058269, 1144217, 1230170, 1316123, 1402071, 1488023, 1573972, 1659924, 1745876, 1831825, 1917777, 2003729, 2089678, 2175630, 2261580, 2347530, 2433484,
             2519432, 2605384, 2691333, 2777286, 2863238, 2949186, 3035138, 3121088, 3207039, 3292990, 3378941, 3464892, 3550844, 3636793, 3722746, 3808693, 3894647, 3980597, 4066548, 4152500, 4238448, 4324400, 4410352, 4496300, 4582254]
    hit0 = 1
    data1 = [0, 35302, 43487, 51672, 59859, 68044, 76231, 84416, 92601, 100788, 108973, 117158, 125345, 133530, 141718, 149902, 158087, 166274, 174459, 182647, 190831, 199016, 207203, 215388, 223576, 231760,
             239946, 248132, 256317, 264504, 272689, 280875, 289061, 297246, 305433, 313618, 321804, 329989, 338176, 346362, 354547, 362733, 370918, 379104, 387291, 395477, 403662, 411847, 420033, 428220, 436406]
    hit1 = 7


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'elementalist'
        self.名称 = '知源·元素师'
        self.角色 = '魔法师(女)'

        self.职业 = '元素师'
        self.武器选项 = ['魔杖', '法杖']
        self.输出类型选项 = ['魔法百分比']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '魔杖'
        self.防具类型 = '布甲'

        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1

        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.85

        super().__init__(equVersion)

    def 职业特殊计算(self):
        圣灵符文 = self.get_skill_by_name('圣灵符文')
        self.get_skill_by_name('属性精通').圣灵符文倍率 = 1 + 圣灵符文.data0[圣灵符文.等级] / 1000
        self.get_skill_by_name('魔法秀').圣灵符文倍率 = 1 + 圣灵符文.data1[圣灵符文.等级] / 1000
        self.skills_passive['圣灵符文']['info'] = [{
            "type": "增幅",
            "info": [圣灵符文.data0[圣灵符文.等级] / 10, '属性精通', '无']
        }, {
            "type": "增幅",
            "info": [圣灵符文.data1[圣灵符文.等级] / 10, '魔法秀', '无']
        },
        ]

    def set_skill_info(self, info, rune_except=[], clothes_pants=[]):
        super().set_skill_info(info, clothes_pants=['魔法秀'])

    # 抗性有成长的较为特殊 需要按照以下进行添加
    def 职业特殊设置(self):
        属性精通 = self.get_skill_by_name("属性精通")
        self.所有属性抗性加成(属性精通.等级)
